<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * <Descripción del modelo>
 *  
 */
class Cursos_Model extends CI_Model {
    function __construct() {
        parent::__construct();
    }
        
    /**
     * Traigo lista completa de cursos y devuelvo un array similar al de temáticas.
     */
    function getCursos(){
        
        //El JOIN en SQL cumple la función de unir tablas. Funciona de forma similar
        //a lo que nos enseñaron de poner como FROM varias tablas y en el WHERE las
        //condiciones.
        //Se supone que los JOIN's tienen mejor rendimiento.
        //Para leer sobre JOIN's
        //http://mauriciopastrana.com/gadgets-y-tecnologia/entendiendo-los-mysql-join/
        $sql="SELECT idCurso, titulo, edadDestino, estado
            FROM Cursos c 
            JOIN Tematicas t ON c.idTematica = t.idTematica";
        $resultado = $this->db->query($sql);
        $resultado=$resultado->result_array();
                
        //Como el estado devuelve un 1 o un 0 dependiendo de TRUE o FALSE
        //(Activo o No Activo)
        //Lo trabajo para convertirlo a Activo o No Activo,
        //así lo mando al controlador listo para trabajar.
        
        $resultadoFinal=array();    
        
        //Recorro cada resultado que es un curso.
        foreach ($resultado as $curso){
            
            //Si es 1 es TRUE entonces es 'Activo', si no, es 0 FALSE que es 'No Activo'.
            
            if($curso['estado']){
                $curso['estado']="Activo";
            }
            else{
                $curso['estado']="No Activo";
            }
            
            //Asigno a un resultado final que es lo que voy a devolver después.
            $resultadoFinal[]=$curso;
        }       
        return $resultadoFinal;
    }
    
    function get_cursos_by_tematica () {
        //Función que devuelve los cursos agrupados por tematica, además devuelve
        //descripción de la temática y sólo devuelve los cursos que están activos.
        $sql="SELECT * FROM Cursos WHERE estado = 1 GROUP BY idTematica";
        $resultado=$this->db->query($sql);
        return $resultado->result_array();
    }
      
    /**
     * Función que devuelve todos los datos (de la tabla Cursos) para un Curso
     * específico cuyo 'id' es pasado como parametro.
     * 
     * @param int $id
     * @return array
     */
    function getCurso($id){
        $sql="SELECT * FROM Cursos
              WHERE idCurso=$id";
        
        $resultado = $this->db->query($sql);
        $resultado = $resultado->result_array();
        return $resultado[0];
    }
    
    function insertar_curso($titulo, $tematica, $tipoSalon, $edadDestino, $estado){
        $sql = "INSERT INTO Cursos (titulo, idTematica, tipoSalon, edadDestino, estado)
                VALUES ('$titulo', $tematica, '$tipoSalon', '$edadDestino', $estado)";
        
        $this->db->query($sql);
    }
    function actualizar_curso($idCurso, $titulo, $tematica, $tipoSalon, $edadDestino, $estado){
        $sql = "UPDATE Cursos 
            SET titulo='$titulo', idTematica=$tematica, tipoSalon=$tipoSalon,
                edadDestino='$edadDestino', estado=$estado
            WHERE idCurso=$idCurso";
        
        $this->db->query($sql);
    }
    
    function get_nivel($idNivel){
        $sql="SELECT * FROM Niveles
              WHERE idNivel=$idNivel";
        
        $resultado = $this->db->query($sql);
        $resultado = $resultado->result_array();
        return $resultado[0];
    }
    
    function get_niveles_curso($idCurso){
        $sql= "SELECT * FROM Niveles WHERE idNivel in (SELECT idNivel FROM NivelesCurso WHERE idCurso=$idCurso)";
        $resultado = $this->db->query($sql);
        
        return $resultado->result_array();
    }
    
    function get_temario_nivel_curso($idCurso, $idNivel){
        $sql= "SELECT temario FROM NivelesCurso WHERE idNivel=$idNivel AND idCurso=$idCurso";
        
        $resultado = $this->db->query($sql);
        $resultado = $resultado->result_array();
        return $resultado[0];
    }
    
    function existe_nivel_curso($idCurso, $idNivel){
        $sql= "SELECT count(*) as cuenta  FROM NivelesCurso WHERE idNivel=$idNivel AND idCurso=$idCurso";
        $resultado = $this->db->query($sql);
        
        $resultado = $resultado->result_array();
        return $resultado[0];
    }


    function actualizar_temario($idCurso, $idNivel, $temario){
        $sql="UPDATE NivelesCurso 
            SET temario='$temario'
            WHERE idCurso=$idCurso AND idNivel=$idNivel";
        
         $this->db->query($sql);
    }
}
/* End of file cursos_model.php */
/* Location: ./application/models/cursos_model.php */